17905f56c9c697dd3b0c34cfbc184adb3d643af8,modules/assignment/src/test/java/com/intuit/wasabi/assignment/impl/AssignmentsImplTest.java,AssignmentsImplTest,getAssignment_test_3,#,612

Before Change


                .withCreated(DATE)
                .withCacheable(null)
                .build();
        Mockito.when(assignmentsRepository.assignUser(assignment, experiment, DATE)).thenReturn(newAssignment);
        Mockito.when(assignmentsRepository.getAssignment(experiment.getID(), User.ID.valueOf("user-a"), context)).thenReturn(newAssignment);

        assignment = assignmentsRepository.getAssignment(experiment.getID(), User.ID.valueOf("user-a"), context);
        assert assignment.getBucketLabel() == null;
        assert assignment.getStatus() == Assignment.Status.NEW_ASSIGNMENT;

        redBucket.setState(Bucket.State.CLOSED);
        redBucket.setAllocationPercent(0.0);
        yellowBucket.setAllocationPercent(1.0);

        result = HashBasedTable.create();
        result.put(experiment.getID(), experiment.getLabel(), "red");
        Mockito.when(assignmentsRepository.getAssignments(User.ID.valueOf("user-b"), testApp, context, allExperiments)).thenReturn(result);
        Mockito.when(assignmentsRepository.getAssignments(User.ID.valueOf("user-a"), testApp, context, allExperiments)).thenReturn(result);

        builder = Assignment.newInstance(experiment.getID())
                .withApplicationName(experiment.getApplicationName())
                .withUserID(User.ID.valueOf("user-b"))
                .withContext(context)
                .withBucketLabel(null);
        assignment = builder.build();

        newAssignment = Assignment.newInstance(assignment.getExperimentID())
                .withBucketLabel(assignment.getBucketLabel())
                .withUserID(assignment.getUserID())
                .withContext(assignment.getContext())
                .withStatus(Assignment.Status.NEW_ASSIGNMENT)
                .withCreated(DATE)
                .withCacheable(null)
                .build();
        Mockito.when(assignmentsRepository.assignUser(assignment, experiment, DATE)).thenReturn(newAssignment);
        Mockito.when(assignmentsRepository.getAssignment(experiment.getID(), User.ID.valueOf("user-b"), context)).thenReturn(newAssignment);

        assignment = assignmentsRepository.getAssignment(experiment.getID(), User.ID.valueOf("user-b"), context);
        assert assignment.getBucketLabel() == null;
        assert assignment.getStatus() == Assignment.Status.NEW_ASSIGNMENT;

        newAssignment = Assignment.newInstance(assignment.getExperimentID())
                .withBucketLabel(assignment.getBucketLabel())
                .withUserID(assignment.getUserID())
                .withContext(assignment.getContext())
                .withStatus(Assignment.Status.EXISTING_ASSIGNMENT)
                .withCreated(DATE)
                .withCacheable(null)
                .build();

        Mockito.when(assignmentsRepository.getAssignment(experiment.getID(), User.ID.valueOf("user-b"), context)).thenReturn(newAssignment);
        assignment = assignmentsRepository.getAssignment(experiment.getID(), User.ID.valueOf("user-b"), context);

        assert assignment.getStatus() == Assignment.Status.EXISTING_ASSIGNMENT;
        assert assignment.getBucketLabel() == null;

After Change


                .build();
        Mockito.when(assignmentsRepository.getAssignment(User.ID.valueOf("user-a"), testApp, experiment.getID(), context)).thenReturn(newAssignment);

        assignment = assignmentsRepository.getAssignment(User.ID.valueOf("user-a"), testApp, experiment.getID(), context);
        assert assignment.getBucketLabel() == null;
        assert assignment.getStatus() == Assignment.Status.NEW_ASSIGNMENT;

        redBucket.setState(Bucket.State.CLOSED);
        redBucket.setAllocationPercent(0.0);
        yellowBucket.setAllocationPercent(1.0);

        result = HashBasedTable.create();
        result.put(experiment.getID(), experiment.getLabel(), "red");
        //Mockito.when(assignmentsRepository.getAssignments(User.ID.valueOf("user-b"), testApp, context, allExperiments)).thenReturn(result);
        //Mockito.when(assignmentsRepository.getAssignments(User.ID.valueOf("user-a"), testApp, context, allExperiments)).thenReturn(result);

        builder = Assignment.newInstance(experiment.getID())
                .withApplicationName(experiment.getApplicationName())
                .withUserID(User.ID.valueOf("user-b"))
                .withContext(context)
                .withBucketLabel(null);
        assignment = builder.build();

        newAssignment = Assignment.newInstance(assignment.getExperimentID())
                .withBucketLabel(assignment.getBucketLabel())
                .withUserID(assignment.getUserID())
                .withContext(assignment.getContext())
                .withStatus(Assignment.Status.NEW_ASSIGNMENT)
                .withCreated(DATE)
                .withCacheable(null)
                .build();
        Mockito.when(assignmentsRepository.getAssignment(User.ID.valueOf("user-b"), testApp, experiment.getID(), context)).thenReturn(newAssignment);

        assignment = assignmentsRepository.getAssignment(User.ID.valueOf("user-b"), testApp, experiment.getID(), context);
        assert assignment.getBucketLabel() == null;
        assert assignment.getStatus() == Assignment.Status.NEW_ASSIGNMENT;

        newAssignment = Assignment.newInstance(assignment.getExperimentID())
                .withBucketLabel(assignment.getBucketLabel())
                .withUserID(assignment.getUserID())
                .withContext(assignment.getContext())
                .withStatus(Assignment.Status.EXISTING_ASSIGNMENT)
                .withCreated(DATE)
                .withCacheable(null)
                .build();

        Mockito.when(assignmentsRepository.getAssignment(User.ID.valueOf("user-b"), testApp, experiment.getID(), context)).thenReturn(newAssignment);
        assignment = assignmentsRepository.getAssignment(User.ID.valueOf("user-b"), testApp, experiment.getID(), context);

        assert assignment.getStatus() == Assignment.Status.EXISTING_ASSIGNMENT;